//1、引入express
const { response, json } = require('express');
const express = require('express'); 
//node.js的require函数 调用模块使用的函数 nodejs有三种模块

//2、创建应用对象
const app=express();

//3、创建路由规则
//request是对请求报文的封装
//response是对响应报文的封装
//当请求行的路径是server时 会执行回调函数 并且由response
// 进行响应
app.get('/server',(request,response)=>{
    //设置响应头 设置允许跨域
    response.setHeader('Access-Control-Allow-Origin','*');
    //设置响应体
    response.send("Hello Ajax");
});
//设置post匹配的路由规则，不设置的话post请求不做响应
// app.post('/server',(request,response)=>{
//     response.setHeader('Access-Control-Allow-Origin','*');
//     response.setHeader('Access-Control-Allow-Header','*');
//     response.send("hello Ajax Post")
// });

//接受任意请求 自定义请求头的时候会发送一个option请求 预检
app.all('/server',(request,response)=>{
    //响应头,跨域和允许自定义请求头
    response.setHeader('Access-Control-Allow-Origin','*');
    response.setHeader('Access-Control-Allow-Headers','*');
    // 响应体
    response.send("hello Ajax All");
});


//设置接受json格式
app.all('/json-server',(request,response)=>{
    //响应头,跨域和允许自定义请求头
    response.setHeader('Access-Control-Allow-Origin','*');
    response.setHeader('Access-Control-Allow-Headers','*');
    // 响应体
    const data = {
        name : 'atguigu'
    };
    //对对象进行字符串转换
    let str = JSON.stringify(data);
    response.send(str); //send只能接受字符串和buffer
});

//针对ie缓存 
app.get('/ie',(request,response)=>{
    //设置响应头 设置允许跨域
    response.setHeader('Access-Control-Allow-Origin','*');
    //设置响应体
    response.send("Hello IE -5");
});


//延时响应
app.get('/delay',(request,response)=>{
    //设置响应头 设置允许跨域
    response.setHeader('Access-Control-Allow-Origin','*');
    //设置响应体 这里设置3秒钟之后才进行发送
    setTimeout(() => {
        response.send("延时响应");
    },3000);

});

//Jquery服务
app.all('/jquery-server',(request,response)=>{
    //设置响应头 设置允许跨域
    response.setHeader('Access-Control-Allow-Origin','*');
    // response.send('hello jquery Ajax');
    const data = {name: '尚硅谷'};
    response.send(JSON.stringify(data));

});

//axios服务
app.get('/delay',(request,response)=>{
    //设置响应头 设置允许跨域
    response.setHeader('Access-Control-Allow-Origin','*');
    //设置响应体 这里设置3秒钟之后才进行发送
    setTimeout(() => {
        response.send("延时响应");
    },3000);

});

// 4、监听端口启动服务
app.listen(8000,()=>{
    console.log("服务已经启动，8000端口监听中");
    
});
